Server for presenting interactive content synchronized to time-based media

ABSTRACT

Where multiple client devices are synchronized to multiple, asynchronous instances of a time-based media presentation such as live and time-shifted views of a television broadcast, interactive content can be delivered to each one of the various devices at a particular time (or “time offset”) within the presentation independent of when each instance of the time-based media presentation is viewed.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/837,842 filed Jul. 16, 2010, which is a continuation-in-part of U.S.application Ser. No. 12/789,377 filed on May 27, 2010, which applicationclaims the benefit of U.S. Prov. App. No. 61/181,472 filed on May 27,2009. The entire content of these applications is hereby incorporated byreference.

BACKGROUND

Time-based media presentations such as movies, animation, sports events,live or pre-recorded television broadcasts, and so forth may bepresented in a variety of formats and a variety of venues that may rangefrom new movie releases in movie theaters to time-shifted home viewingof pre-recorded television broadcasts. There remains a need forsynchronization capabilities that permit individual devices tosynchronize to a time-based media presentation regardless of when andwhere the presentation is being displayed, as well as a need fordelivery of interactive content synchronized to multiple, asynchronousinstances of such media.

SUMMARY

Where multiple client devices are synchronized to multiple, asynchronousinstances of a time-based media presentation such as live andtime-shifted views of a television broadcast, interactive content can bedelivered to each one of the various devices at a particular time (or“time offset”) within the presentation independent of when each instanceof the time-based media presentation is viewed.

In one aspect, a method disclosed herein includes receiving a pluralityof time offsets from a plurality of client devices that identify atemporal location in a presentation of time-based media for each one ofthe plurality of client devices; and transmitting time-based interactivecontent selected according to the temporal location to at least one ofthe plurality of client devices.

Transmitting time-based interactive content may include transmitting apresentation offset in order to synchronize display of the time-basedinteractive content on each one of the plurality of client devices. Theinteractive content may include a quiz related to the presentation. Themethod may include scoring one or more responses to the quiz andtransmitting a quiz result to one or more of the plurality of clientdevices. The interactive content may include a poll temporally relatedto the presentation. The method may include transmitting a result forthe poll to one or more of the plurality of client devices. Theinteractive content may include a display of a plurality of searchqueries from one or more of the plurality of client devices that mayhave been synchronized to the presentation, each one of the plurality ofsearch queries synchronized to the presentation according to anindependently determined time offset for each respective one of theplurality of client devices. The plurality of search queries may beranked according to popularity. The plurality of search queries may befiltered according to popularity. The method may include updating theinteractive content for each one of the plurality of devices as the timeoffset for that one of the plurality of devices changes over an intervalof the presentation. The presentation may include a live televisionbroadcast. The presentation may include a time-shifted televisionbroadcast. The presentation may include a display to the client devicefrom a pre-recorded media including at least one of a CD, a DVD, aBlu-ray disc, and an HD DVD.

Synchronizing the client device may include: receiving datarepresentative of an audio component of the presentation from each oneof the plurality of client devices; determining for each one of theplurality of client devices a time offset within the presentation; andtransmitting the time offset for each one of the plurality of clientdevices to that one of the plurality of client devices. The interactivecontent may include an instant messaging interface that couples theplurality of client devices in a communicating relationship forsynchronous chat.

In another aspect, a computer program product disclosed herein forproviding interactive content, the computer program product includescomputer executable code embodied in a non-transitory computer readablemedium that, when executing on one or more computing devices, performsthe steps of: receiving a plurality of time offsets from a plurality ofclient devices that identify a temporal location in a presentation oftime-based media for each one of the plurality of client devices; andtransmitting time-based interactive content to at least one of theplurality of client devices.

Transmitting time-based interactive content may include transmitting apresentation offset in order to synchronize display of the time-basedinteractive content on each one of the plurality of client devices. Theinteractive content may include a quiz related to the presentation. Thecomputer program product may include code that performs the step ofscoring one or more responses to the quiz and transmitting a quiz resultto one or more of the plurality of client devices.

In another aspect, a server disclosed herein includes a data networkinterface configured to provide a communicating relationship with a datanetwork; a database; and a processor configured to receive through thedata network interface a plurality of time offsets from a plurality ofclient devices that identify a temporal location in a presentation oftime-based media for each one of the plurality of client devices, and totransmit time-based interactive content to at least one of the pluralityof client devices through the data network interface.

DRAWINGS

The invention may be more fully understood with reference to theaccompanying drawings wherein:

FIG. 1 is a block diagram of a synchronization system.

FIG. 2 is a flow chart of a server-side process for synchronization.

FIG. 3 illustrates a technique for identifying bitwise variations to abinary value.

FIG. 4 is a flow chart of a client-side process for synchronization.

FIG. 5 is a block diagram of an audience tracking system.

FIG. 6 is a flow chart of an audience tracking process.

FIG. 7 is a flow chart of a process for receiving synchronized,interactive content at a client device.

FIG. 8 is a flow chart of a process for sharing search activity from anumber of synchronized devices.

FIG. 9 is a flow chart of a process for delivering interactive contentfrom a server to one or more synchronized client devices.

FIG. 10 shows a user interface for rendering interactive content on aclient device.

DETAILED DESCRIPTION

Disclosed herein are systems, methods, devices, computer code, and meansfor synchronizing to a time-based media presentation based upon an audiochannel of the time-based media presentation. It will be understood thatwhile an audio channel provides one useful source for synchronization,any channel such as a video, slide show, or concurrent data channel mayalso or instead be used for synchronization as described herein.

FIG. 1 is a block diagram of a synchronization system. The system 100may include a client device 102 with a display 104, a processor 106, amemory 108, an analog-to-digital converter 109, a microphone 110, and adata network interface 112. The system may further include a mediasource 114, a media platform 116 that emits an audio portion 118 of atime-based media presentation, a data network 120, a server 122including a data network interface 124 and a database 126, and datanetwork content sources 128.

The client device 102 may be any device with a housing having amicrophone 110, a data network interface 112, and other componentscollectively capable of performing the functions generally describedherein. By way of example and not of limitation, this may include alaptop computer, a notebook computer, a netbook computer, and a desktopcomputer. This may also or instead include a communication device suchas a cellular phone, electronic mail device, or the like. The clientdevice 102 may also or instead include a mobile device such as apersonal digital assistant, media player, smart phone, iPod, or thelike.

The display 104 may be a screen or the like for displaying graphicalinformation. By way of generality, the client device 102 may alsoprovide for any of a variety of outputs including text, pictures, video,sound, and so forth, and all such output devices, or any other outputdevices that can be controlled by the client device 102 to provideinformation (e.g., buzzers, light-emitting diodes, etc.) are intended tofall within the scope of the display 104 as that term is used herein.

The processor 106 may include a general purpose microprocessor, adigital signal processor, an application specific integrated circuit, orany other processing circuitry or combination of the foregoing thatcontrols operation of the client device 102 and the components thereof,as further programmed or otherwise configured to perform the additionalprocessing for synchronization as described herein. This may in generalinclude software executing on a general processing unit of the processor106, or a dedicated, special purpose processor or other processingcircuitry or hardware configured to perform the synchronizationfunctions described herein, or a chipset or the like controlled by theprocessor to perform the synchronization functions described herein. Allsuch variations that would be apparent to one of ordinary skill in theart are intended to fall within the scope of this disclosure.

The memory 108 may include any conventional memory for an electronicdevice suitable for storing digital samples from the microphone 110, andotherwise supporting synchronization functions as described herein.

The analog-to-digital converter 109 may be any combination of circuits,processors, chips, chipsets and the like suitable for capturing asequence of digital samples from an analog microphone signal receivedfrom the microphone 110. One common sampling rate consistent withCompact Disc quality audio is 44.1 kHz with 16 bit samples. However, itwill be understood that other rates a sample sizes are commonly employedin a variety of applications, and larger or smaller samples, at higheror lower sample rates may be provided by the analog-to-digital converterwithout departing from the scope of this disclosure.

The microphone 110 may be any microphone capable of converting audioenergy to electrical signals for use by the analog-to-digital converter109. This may for example include a microphone integrated into theclient device 102, or an external microphone connected to the clientdevice 102 through a jack or input plug, or some combination of these.It should also be appreciated that while specific hardware is described,this description is by way of an example of a common, commerciallyavailable architecture. But more generally, any combination ofcomponents suitable for converting audio energy into digital samples maybe suitably adapted to use with the client device 102 described herein.

The data network interface 112 may include any hardware for connectingthe client device 102 in a communicating relationship with a datanetwork such as the data network 120. This may for example include adata network interface card for wired Ethernet or other wiredconnectivity, or this may include a wireless data networking circuitsupporting standardized or proprietary data network communications.Common standards that may be usefully employed in the data networkinterface 112 of the client device 102 include Bluetooth, IEEE 802.11(e.g., WiFi), IEEE 802.16 (e.g., WiMax), and cellular or other wide areabroadband data standards, as well as combinations of the foregoing.

The media source 114 may be any source of a time-based mediapresentation. This may, for example, include a DVD, HD DVD, Blu-rayDisc, or other optical, magnetic, or electronic media having contentpre-recorded thereon, along with any computer, disc player, tape player,or other device used to provide an electronic version of thepre-recorded content. The media source 114 may also include a broadcastmedium such as analog or digital television broadcasts, cabletelevision, Internet television, and so forth. The media source 114 mayalso include a source of media for time-shifted viewing of a televisionbroadcast or the like such as a Digital Video Recorder, or other localor data networked archive of content for time-shifted viewing. This mayalso or instead include on-demand programming received through a cabledata network, a data network (e.g., the Internet) or the like. This mayalso or instead include streaming media from an Internet data source orthe like. While video multimedia such as movies, sports events,television broadcasts, and any other live or pre-recorded video and thelike is generally contemplated as time-based media, it will beappreciated that time-based media may more generally include any mediathat changes over time such as sound recordings, radio programs, music,slide shows, animations, animated graphics, video games, and so forth,any of which may be stored on a pre-recorded medium, received over adata network, received through a cable data network, received through anaired broadcast, or otherwise made available in a locally reproducibleform as a time-based media presentation.

The media platform 116 may be any device or combination of devices thatreceives a time-based media presentation from the media source andrenders the time-based media presentation for viewing. This may includewithout limitation a computer, cable set top box, satellite dish,stereo, television, and so forth, as well as combinations of theforegoing. Thus, for example a consumer may install a satellite dish,authenticate a satellite decoder over a telephone land line, decodesatellite signals with a satellite decoder to provide a time-based mediapresentation in electronic form, and render the time-based mediapresentation using a television to render the video images and a stereoto render the audio portion 118.

The audio portion 118 of the time-based media presentation may bereproduced as sound energy in a viewing environment. The client device102 may in general capture the audio portion 118 using the microphone110 and analog-to-digital converter 109 to provide digital samples ofthe audio portion. These digital samples may be further processed by theclient device 102 and used in a synchronization process as described infurther detail below.

The data network 120 may include any data network such as, for example,the Internet, as well as any intermediate data networks or devicesbetween the client device 102 and the server 122, such as local areadata networks, Internet service providers, air interfaces to cellular ortelecommunications company infrastructures, and so forth, as well ascable, telephone, or satellite infrastructure adapted for datacommunications. All such variations that can provide end-to-end datacommunications between the client device 102 and the server 122 mayserve as the data network 120 described herein.

The server 122 may be any combination of hardware and software capableof responding to requests over the data network 120 from the clientdevice 102. The server 122 may include one or more processors 123including processing circuitry such as any of the processing circuitrydescribed herein configured in hardware and/or software to perform thevarious functions described herein. The server 122 may, for example,include a web server or the like that responds to HyperText TransferProtocol requests, or any other standard or proprietary informationserver that supports sessions with client devices for exchange ofinformation as more generally described herein through a data networkinterface 124. The server 122 may also include a database 126, such as arelational database, lookup tables, files, and so forth, that storesinformation such as hash tables for pre-processed media, all asdescribed in greater detail below. Any database capable of informationretrieval consistent with operation of the server 122 as describedherein may be used as the database 126 of the server 122.

Data network content sources 128 may be any sources of content connectedto the data network 120. As generally discussed below, once the clientdevice 102 is synchronized to a time-based media presentation, theclient device 102 may retrieve and render synchronized content, eitherfrom the server 122 that provides synchronization functions, or anyother data network content sources 128 such as web sites, advertisementservers, streaming media servers, e-commerce sites, or any other remotesite or resource. The additional content synchronized to the time-basedmedia presentation may, for example, include a supplemental videostream, contextual information, advertising, interactive content, andany other content that might be related to the time-based mediapresentation, and more specifically, to a particular time offset withinthe time-based media presentation. In general, the synchronized contentmay be retrieved on an as-needed basis during a presentation, orpre-cached for some or all of the presentation so that it is locallypresent in the memory 104 of the client device 102 at the appropriatetime.

FIG. 2 is a flow chart of a server-side process for synchronization. Ingeneral, the process 200 may include pre-processing 201 of media tostore hash tables or the like in a database 202, and responding toclient requests for synchronization 203 based upon the hash tables forthe pre-processed media, all as more specifically described below.

As shown in step 202, the process 200 may begin by receiving an audioportion of a time-based media presentation such as any of the media fromany of the media sources described above.

As shown in step 204, the audio may be sampled into a sequence ofdigital samples from the audio portion. This may include digitizing anaudio rendering of the audio portion, or where the media is available indigital format, simply copying the digital audio, or a subset of thedigital audio to provide a sequence of digital samples for furtherprocessing.

As shown in step 208, a plurality of hashes may be calculated from thesequence of digital samples of the time-based media presentation. Ingeneral, the plurality of hashes may be a time wise sequence of hashescorresponding to digital samples of audio from the time-based mediapresentation. Each one of the plurality of hashes may be a non-uniquerepresentation of a portion of audio from the time-based mediapresentation corresponding to a particular time offset within thetime-based media presentation.

A variety of hashing functions are known in the art and may be adaptedto the audio-based synchronization systems described herein. One suchhashing function is described in Ke et al., Computer Visions for MusicIdentification, the entire content of which is incorporated herein byreference. While Ke proposes a hashing function for us in musicidentification, the hashing algorithms of Ke can be adapted tosynchronization as generally described herein. In one embodiment, auseful hashing function may include processing as described in greaterdetail below.

As an initial step, the amount of data from digital samples obtained atthe native sampling rate may be reduced by selecting a subset of thedigital samples at some predetermined frequency, e.g. every othersample, every third sample, and so forth. The digital samples may alsoor instead be downsampled to a predetermined frequency such as aboutfive thousand five hundred Hertz (5.5 kHz) so that hashing can beperformed consistently across multiple audio receiver types. The digitalsamples may also or instead be windowed to provide a sequence ofoverlapping, windowed data sets. In one embodiment, each one of thesequence of data sets may be obtained from a window of 1024 samples,with each window offset by 64 samples, thus providing a high degree ofoverlap for each windowed data set. More generally, any offset and/orwindow set consistent with the synchronization processes describedherein may be employed.

Each windowed data set (or sequence) of digital samples may also orinstead be process by normalizing a magnitude of the sequence of digitalsamples to some predetermined value. This step helps to mitigatedifferences in playback volume of a presentation, sensitivity of audioreceiving hardware, distance from the media platform (or speakers of themedia platform), room size, and other environmental conditions thatmight affect the sound captured by the client device. Each sequence ofdigital samples may also or instead be band pass filtered or low passfiltered, which may include filtering with a low pass filter to providea filtered output. This may include the use of a digital filter having a3 dB cutoff of 2.2 kHz, or about two kilohertz, or any other suitabledigital and/or analog filter to reduce noise and suppress signalcomponents outside the range of interest.

However processed, each sequence of digital samples may be transformedinto a frequency-domain representation using, e.g., a discrete Fouriertransform or other suitable algorithm. The frequency-domainrepresentation may then be hashed by dividing the frequency spectruminto a number of frequency bands and converting the signal energy ineach band into a binary value according to the relative power in eachband compared to each other one of the frequency bands within thefrequency-domain representation. In one aspect, the spectrum may bedivided into thirty two bands, with each band represented by a singlebit (e.g., a one or a zero) to provide a thirty two bit hash of thesequence of digital samples. The spectrum may be divided in a number ofways, such as linearly into equal size bands or logarithmically intobands of logarithmically increasing bandwidth. The resulting hash, whichprovides a compact non-unique description of the sampled audio, may thenbe accumulated with additional hashes for further processing.

As shown in step 210, the sequence of hashes may be stored, along withthe corresponding one or more time offsets in a hash table that permitsretrieval of the one or more time offsets with a hash value. The hashtable may, for example, be stored in a database on a server configuredto respond to a request from a client device.

The above pre-processing 201 may be performed any number of times forany number of time-based media presentations, with hash tables for eachmedia item stored in the database 202 for subsequent synchronizationprocesses. Turning now to the synchronization process 203, the followingsteps detail the manner in which a server responds to client requests.In general, the server may be configured to respond to a request from aclient device containing a number of hashes (and explicit or implicitsequence numbers for the hashes) with a number of candidate time offsetscorresponding to each one of the hashes. In general, the candidatehashes may be resolved into an offset within the time-based mediapresentation by the server, or forwarded to the client for furtherprocessing. By performing this additional processing at the server, theclient is relieved of further synchronization calculations and theoffset can be advantageously transmitted over a data network as a singlenumerical value.

As shown in step 212, a server may receive a number of hashes from aclient device. These hashes generally include hashes calculated at theclient device based upon audio data acquired by the client device. Theserver may also receive supplemental information to assist in asynchronization process, such as explicit sequence numbers for each hashand/or a unique identifier of the time-based media presentation thatexplicitly identifies the presentation to the server. While the systemsand methods described herein may be employed without such an identifier,this information can greatly simplify and speed synchronizationcalculations by reducing the data set against which the server mustsearch for candidate time offsets.

As shown in step 214, a number of bitwise variations to each receivedhash may be identified. In general, this includes determining anallowable bit error for the hash, or a number of allowable bitwisevariations that are to be evaluated in subsequent synchronizationprocessing, which value may for example be stored in the memory of theclient device and transmitted to the server. Finding the bitwisevariations to the hash may also be described as determining all valueswithin a specified Hamming distance of the calculated hash, whichprovides a certain allowance for variations between the ideal sourceaudio (used for pre-processing as described above) and the audio portionof a presentation as captured and digitized by a client device. With apredetermined allowable bit error, all of the binary values within thatnumber of bits of the hash may readily be determined using any suitabletechnique. One useful technique is described in greater detail belowwith reference to FIG. 3. Other techniques are known in the art and maybe useful employed to calculate bitwise variations to a hash asdescribed herein. In one embodiment, the hash may include thirty twobits, and the allowable bit error may be eight bits. The resultingcandidate hashes provide a basis for further synchronization processingthat accommodates variations in the audio as captured by the clientdevice.

It will be understood that while calculation of candidate hashes isdescribed above as a server-side function, the candidate hashes may alsoor instead be calculated by a client with suitable processing capabilityand communication bandwidth without impairing general operation of asynchronization process as described herein.

As shown in step 216 the candidate hashes may be evaluated to determinean actual offset within a time-based media presentation. For eachcandidate hash (which has a relative offset to other candidate hashes),any corresponding time offsets are retrieved from the hash table and acount or score is incremented for each one of the corresponding timeoffsets. A score or count is accumulated for each time offset retrievedfrom the hash table, with the scoring for each time offset shiftedaccording to the sequence number (or time) of the correspondingcandidate hash. In this manner, an offset within the time-based mediamost closely corresponding to a beginning of the hashes received fromthe client can be identified.

By way of simplified, illustrative example, the first client hash mayproduce two candidate hashes, and the two candidate hashes may yieldthree offsets at t=5, t=6, and t=10. The second client hash may producetwo candidate hashes that yield from the hash table four offsets at t=6,t=10, t=14, and t=15. However, this second group of offsets must beshifted back one time increment to align with the previous group, so thesecond group would be used to accumulate a score at t=6−1=5, t=10−1=9,t=14−1=13, and t=15−1=14. Using a simple count, the accumulated scoreswould then be 2 at t=5, 1 at t=6, 1 at t=9, 1 at t=10, 1 at t=13, and 1at t=14. A third client has may produce two candidate hashes that yielda single offset at t=14. Again, this third group must be shifted back(two time increments) to align with the previous groups, so the thirdgroup would accumulate a score at t=14−2=12. At this point the bestscore occurs at t=5, and an inference may be drawn that the time atwhich the first hash was calculated at the client device corresponds toan offset of t=5 within the time-based media presentation. It will bereadily appreciated that for a preferred embodiment using a thirty twobit hash and a Hamming distance of eight, a significantly greater numberof time offsets will actually be produced. However, the same basicapproach may be employed to accumulate or otherwise score potentialoffsets within the media based upon time offsets retrieved from the hashtable for candidate hashes.

As shown in step 218, the best score from among the plurality of scoresmay be used to select and return to the client an offset within thetime-based media presentation corresponding to the beginning of thesequence of hashes sent by the client device. It will be understood thatthe offset returned to the client may also or instead include the timecorresponding to the last of the sequence of hashes, or some otheroffset such as a median offset or an offset adjusted for networklatency. It should also be understood that the server may onlyconditionally return an offset, such as when the best score reaches somepredetermined minimum, or when a score for one offset is greater thanall other scores by some predetermined relative or absolute amount, orbased upon any other criteria that might be used to evaluate the qualityof the score(s) and/or the inferences drawn therefrom. In one practicalimplementation with scoring weighted according to the number of bits ineach hash (e.g., a score of thirty two for each retrieved time offset),useful criteria for a reliable synchronization include a minimum scoreof five thousand and a score of at least twice the next greatest score.Of course, other combinations of criteria may also or instead be used todetermine whether and when to return an offset to a client device.

FIG. 3 illustrates a technique for identifying bitwise variations to abinary value. As described above, a synchronization process may includea step of identifying candidate hashes corresponding to bitwisevariations in a hash value calculated by a client or, as alternativelystated, determining a number of bitwise variations to a calculated hash.As described below, these candidate hashes may be determined using abinary tree or binomial tree that is traversed in a manner that excludesbranches of the tree for binary values that exceed the allowable biterror for, i.e., Hamming distance from, the calculated hash.

In order to efficiently locate hash values that differ by a certainnumber of bits from a calculated hash, the server may create a binomialtree data structure 300 to hold loaded hash values. In a thirty two bitembodiment, the data structure 300 has thirty two levels with one levelfor each bit position in the hash. Each level includes left and rightbranches corresponding to zeroes and ones in a bit position of the hashvalue. In the simplified, illustrative embodiment of FIG. 3, the datastructure 300 stores a three bit hash value. Starting at the top of thetree, a binary value of 101 would follow a path through the tree and beplaced into a corresponding bucket (labeled “101”) at the bottom of thedata structure 300. In order to find hash values varying by not morethan one bit, a search algorithm can traverse each leg of the tree asfar as possible without traversing a branch that has more than one bitdifference from the calculated hash (in this case resulting in terminalsat “001”, “100”, and “111”). The efficiency in this approach resultsfrom the ability to avoid traversing branches that would not result inhashes within the desired Hamming distance. While the data structure 300of FIG. 3 may appear simple, the processing gains are substantial for athirty two bit hash and up to eight bits of variation. In general, thecandidate hash values are not stored in the data structure 300. Rather,the candidate hash values are implied by the branch traversal that leadsto a bucket at the bottom of the tree, with each terminal bucketrepresenting a candidate hash, and containing zero or more positionindices or time offsets corresponding to the implied candidate hashvalue. Thus, traversing the data structure 300 according to the biterror limits leads directly and efficiently to the hash table resultsfor the calculated hash received from a client device. Thus in oneaspect determining bitwise variations (FIG. 2, step 214) and evaluatingcandidate hashes (FIG. 2, step 216) to find candidate offsets may becombined into a single processing step. Other techniques suitable foridentifying and evaluating candidate hashes will readily be appreciated,any of which may also or instead be adapted for use in thesynchronization systems and methods disclosed herein.

FIG. 4 is a flow chart of a client-side process for synchronization. Theprocess 400 may in general include processing received audio to generatea sequence of hashes, and then transmitting the hashes to a server forremote calculation of a time offset in a time-based media presentation,after which a client device, which may be any of the client devicesdescribed above, may render synchronized content.

As shown in step 404, a client device, which may be any of the clientdevices described above, may be set up for synchronization such as byinstalling an application on the client device that performssynchronization functions, and/or any applications that might usesynchronization to retrieve and/or display synchronized content. Thismay also or instead include establishing programming interfaces on theclient device between existing applications and a synchronizationapplication so that programs that are already installed (such as mediaplayers, web browsers, and so forth) can render synchronized content.

As shown in step 406, the client device may receive audio. This may, forexample, include receiving an audio portion of a time-based mediapresentation with a microphone of the client device.

As shown in step 408, the client device may sample the audio, such as byusing the analog-to-digital converter to provide a plurality of digitalsamples, and may receive at the processor a sequence of digital samplesobtained with a sampling rate that establishes a time-based relationshipamong the sequence of digital samples. In one aspect, the subsequenthashing steps may be performed on overlapping windows of digital audiodata, so that a next sequence of digital samples is obtained from anoverlapping window of the audio portion of the time-based mediapresentation. In this manner, the windowing provides a series ofoverlapping sets of digital samples from the raw sequence of digitalsamples. The sets of digital samples may be further processed, such asbe preserving only a subset of digital samples for processing, e.g.,every other sample, every third sample, every eighth sample, or anyother reduced data set consistent with proper functioning of subsequentsynchronization functions.

As shown in step 410, the digital samples, such as a sequence or set ofwindowed digital samples, may be processed into a hash including anumber of bits that non-uniquely corresponds to a portion of thetime-based media presentation (and a time offset of that portion withinthe presentation). Over numerous repetitions of the process, a number ofsequential hashes may be obtained for overlapping windows of digitalsamples. Each one of the hashes is derived from the content of acorresponding audio portion of the time-based media presentation, butdoes not uniquely identify the audio portion that it was derived from.That is, numerous segments of audio from the presentation may yield thesame hash. Each one of the hashes may also have a sequence number, or arelative time offset to each other one of the plurality of hashes. Theserelative time offsets are generally not absolute in terms of thepresentation, but may serve as an accurate indicator of the relativetiming of each window of digital samples from which a hash was obtained.More generally, hashes may be prepared in a complementary process to thehashing performed on the pre-processed media as described above. Moregenerally, any suitable processing to the digital samples may beperformed consistent with the processing performed on the pre-processedmedia so that matching and synchronization can be performed.

As shown in step 412, a sequence of hashes may be transmitted to aserver, along with any additional information such as a uniqueidentifier for the time-based media presentation from which the hasheswere derived and a sequence number for each one of the sequence ofhashes indicated a relative time offset among the hashes. The time-basedmedia presentation may be identified in a number of ways. For example, auser of the client device may manually identify the media-basedpresentation, or may provide descriptive information helpful inidentifying the media such as a title of a television series,biographical data (actors, content, etc.), a time, date, and/or channelon which the media was broadcast, or any other useful information. Inanother aspect, the media may be identified using remote contentanalysis, such as by streaming audio or video samples directly to aremote server. While this process may be relatively bandwidth and/orcomputationally expensive, it may be performed one time prior to asynchronization, after which the more efficient synchronizationtechniques described herein may be employed to determine an offsetwithin the time-based media presentation.

As shown in step 414, the client device may determine whether an offsethas been received from the server. If an offset has been received fromthe server indicative of a time offset within the time-based mediapresentation, the process 400 may proceed to step 416 where the clientdevice synchronizes based on the offset. If any offset has not beenreceived, the process 400 may return to step 406 and the client devicemay receive, sample, and hash additional audio content for forwarding tothe server. The server may also or instead respond with an explicitindication of a failure to determine the offset. Where an offset isreturned, the offset may be provided as a specific offset within thetime-based media presentation as generally described above, or a numberof candidate offsets may be returned to the client device for localevaluation.

As shown in step 416, the client device may synchronize to thetime-based media presentation based upon the offset received from theserver, such as by storing in an application on the client device acurrent offset within the time-based media presentation. The localapplication may then coordinate synchronized activities on the clientdevice such as retrieving relevant content, launching additional mediaviewers, web browsers, interactive programs or applets, and so forth. Asynchronization indicator may be displayed on the client deviceindicating that a reliable synchronization has been achieved using,e.g., an icon or symbol on a display of the client device, or anotherindicator such as an audible tone, a flashing light-emitting diode, ananimation, and so forth. Once synchronization has been achieved, theclient device may autonomously maintain synchronization by assuminguninterrupted delivery of the time-based media presentation, and/or theclient device may continuously or periodically confirm synchronizationwith additional sequences of hashes transmitted to the server.

As shown in step 418, once the client device has synchronized to thetime-based media presentation, synchronized content may be rendered onthe client device. This may include any additional content such assupplemental streaming video, textual information, interactive content,advertisements, hyperlinks, and so forth. An application on the clientdevice that coordinates synchronization using the remote server may alsocontrol rendering of the additional content in a manner that issynchronized to the time-based media, either by directly rendering thecontent or by controlling one or more other applications on the clientdevice to render the content.

In addition, audience feedback concerning the time-based mediapresentation may be gathered from time-shifted views of the presentationand correlated to audience feedback from a live presentation. Thefeedback may, for example, be gathered explicitly with user inputs tothe client device, or implicitly such as by detecting a change ofchannel or termination of the presentation using, e.g., the audiencetracking techniques described below. Thus in one aspect there isdisclosed herein a technique for combination additional audience (orclient device) feedback from time-shifted viewing with live audiencefeedback to provide feedback data that aggregates audience feedbacksynchronized to both a liver version of the presentation and atime-shifted view of the presentation.

It will be understood that the steps of the above methods may be variedin sequence, repeated, modified, or deleted, or additional steps may beadded, all without departing from the scope of this disclosure. By wayof example various processing steps may be performed on the server, onthe client device, or some combination of these. In addition, a clientdevice may synchronize to multiple media sources at one time, and aserver may be configured to support synchronization of multiple clientsat one time. Thus, the details of the foregoing will be understood asnon-limiting examples of the systems and methods of this disclosure.

FIG. 5 is a block diagram of an audience tracking system. In general,the system 500 may include a number of client devices 502 receivingaudio 504 from a media source 505 such as a television broadcast. Theclient devices 502 may process the audio 504 to derive a sequence ofhashes that are transmitted over a data network 506 to server 508 whereanalysis can be performed.

The client devices 502 may, for example, be any of the client devicesdescribed above. While four client devices 502 are depicted, any numberof client devices 502 may participate in the system 500, including anycombination of client devices 502 at one geographic location and/ornumerous geographic locations. Each client device 502 may receive theaudio 504 and create a sequence of hashes that characterize audiocontent within the audio 504. This may include any of the hashingprocesses described above, or any other hashing process that uniquely ornon-uniquely identifies the audio content.

The media source 505 may, for example, include televisions systems orstereo or other audio output systems rendering media such as a livetelevision broadcast. Where the client devices 502 are geographicallydistributed, the media source 505 may likewise include hardwarerendering the broadcast at a variety of locations including publiclocations such as airports, lounges, waiting rooms, and so forth, aswell as private locations such as homes or offices, as well as anycombination of these.

The data network 506 may include any of the data networks describedabove, and the server 508 may include any server or combination ofservers or the like capable of receiving sequences of hashes from clientdevices 502 and processing the sequences of hashes as described furtherbelow.

FIG. 6 is a flow chart of an audience tracking process. In general, theprocess 600 includes hashing audio content at a number of client devicesand forwarding the resulting sequences of hashes to a server foranalysis.

As shown in step 602, the process 600 may begin by broadcasting mediahaving an audio component. The broadcast media may include televisedprogramming such as any live or pre-recorded television contentincluding a television series, a movie, a sports event, informationalprogramming, news, and so forth.

As shown in step 604, audio content from the broadcast media may bereceived by a number of client devices exposed to the broadcast media.

As shown in step 606, each client device may hash or otherwise processthe audio content into a time-based sequence of hashes that uniquely ornon-uniquely identify the audio content in the broadcast media at aparticular time.

As shown in step 608, each client device may transmit the sequence ofhashes to a server, such as any of the servers described above.

As shown in step 610, the server may receive the sequence of hashes fromeach participating client device, along with related information such asany explicit supplemental information provided by each client device, orinformation such as an IP address or the like for each client device,any of which may be usefully processed by the server to assist withsubsequent analysis.

As shown in step 612, the server may analyze the sequences of hashesreceived from the participating client devices. A variety of usefulinferences may be drawn from the resulting data set, includingmonitoring of audience behavior (such as channel changing) andadvertising characteristics as described below. It will be readilyappreciated that a range of additional statistics and conclusions mayalso or instead be extracted from the data set.

In one aspect, sequences of hashes from client devices exposed to abroadcast may be monitored in order to create descriptive signaturesdynamically. For example, as client devices receive a broadcast, theymay each create a sequence of hashes for the server. A general locationfor each client device may also be specified in advance by the clientdevice, or inferred from the content that is being broadcast or otherdata such as the IP addresses for the client devices. As theclient-generated signatures for a broadcast are received by the server,these submissions may be processed and an average or other compositesignature may be obtained. A variety of techniques for combining orotherwise characterizing such variations may be employed. Howeverderived, the composite signature may be stored and subsequently appliedto correlate new references to the broadcast program to a particulartime within the original broadcast. This may be useful, for example,when a viewer is watching a program on a time-shifted basis, such as tosynchronize supplemental content to the time-shifted view. In thismanner, the pre-processing described above may be omitted, and hashtables or the like for time-shifted synchronization may be createdautomatically from the sequences of hashes received from client devicesduring the live broadcast.

In another aspect, the sequences of hashes may be analyzed identify whenlocal commercials are being aired. When a program is on, the averagedaudio signals and the resulting sequences of hashes form client devicesmay remain within a narrow band based upon the underlying content.However, during commercial breaks, content may vary significantly basedupon the advertising that is broadcast by each local network. When thishappens, there may be a spike or other measurable change in signaturesthat varies according to the corresponding variation in advertisementcontent. This information may be usefully employed to infer a geographiclocation of client devices and for any other related purposes. Thisinformation may also or instead be used to distinguish betweenadvertisements and other broadcast content, which may be usefullyemployed, for example, to determine how to relate post-broadcastsignatures to the originally-broadcast content. Thus, more generally,based upon server analysis of sequences of hashes, the process 600 mayinclude identifying an occurrence of a commercial break in thetelevision broadcast based upon variations in concurrent ones of theplurality of hashes received from different ones of the client devices.

In another aspect, the sequences of hashes may be analyzed to identifynetwork commercials. It has been observed that when commercials begin, acertain percentage of the public changes the channel. This will cause adeviation in the average audio signal band, but it will be the case thatthis deviation will occur to some extent in all localities. This patternin received, client-generated signatures may be used to infer anoccurrence of a commercial break. By extracting out the deviations andlooking at the averaged data of those who have chosen to stay on thecommercials, it will be possible to determine whether the commercialsbeing played are network-wide or are local.

Thus in one aspect, the process 600 may include identifying a channelchange in proximity to one of the client devices based upon a variationin the sequence of hashes received from the client device. In anotheraspect, the process 600 may include inferring a geographic proximityamong two or more of the client devices based upon a similarity inconcurrent ones of the hashes received from two or more the plurality ofdevices. In still another aspect, the process 600 may includedetermining whether a local advertisement or a network advertisement isbeing aired during a commercial break based upon variations among thehashes received from the various client devices.

Still more generally, by processing audio content from a broadcastdevice (such as a television or radio) on a client device andtransmitting characteristic information to a server, the server canderive a variety of useful metrics that describe the broadcast stream aswell as audience location, audience engagement in broadcast content, andso forth.

Described above are various techniques for synchronizing client devicesto time-based media using, e.g., an audio component or audio channel ofa presentation of the time-based media. In addition to the various usesof such a synchronization platform described above, the synchronizationplatform may be used to deliver interactive content to client devicesthat is individually synchronized to each such client device, regardlessof where each instance of the presentation is timewise for each client.Thus, in general, interactive, synchronized content may be delivered tomultiple, asynchronous instances of a time-based media presentation.

FIG. 7 is a flow chart of a process 700 for receiving synchronized,interactive content at a client device, which may for example be any ofthe devices described above.

As shown in step 702, the process 700 may begin by synchronizing aclient device to a presentation of time-based media. This may include,for example synchronizing based upon an audio component of thepresentation to obtain a time offset within the presentation thatrepresents a time within the time-based media that the client device iscurrently viewing or exposed to. This synchronization may be achievedusing any of the techniques described above. In particular, it will beunderstood that synchronization as contemplated herein may include bothidentification of a presentation and a determination of a time offsetwithin the presentation. Thus, for example, in embodiments a clientdevice may simply be activated by a user in the presence of a televisionbroadcast and, using the synchronization techniques described above, theclient device may in cooperation with a server identify both what thetelevision broadcast is and a time offset within the identifiedbroadcast.

As shown in step 704, the client device may transmit the time offset toa server, such as any of the servers described above. It will beunderstood that the process 700 may employ fully explicitsynchronization where, e.g., each time offset generated by the client istransmitted to the server, or the process 700 may employ implicitsynchronization where, for example, a server that is deliveringinteractive content may continue to infer synchronization based upon asingle time offset unless and/or until an unexpected change in timeoffset is received from the client device. Therefore, for example, theclient device may deliver a single time offset, and the client deviceand/or server may assume that the time-based media presentationcontinues along an ordinary timeline until some predetermined event suchas an end of a program, an unexpected silence, or an explicit indicationby the client device that the presentation has been paused. The clientdevice may also continuously transmit new time offsets as they arecalculated, or the client may, after successful synchronization,transmit time offsets at some reduced rate, e.g., once per second oronce per minute or any other suitable interval.

It will further be appreciated that where synchronization is performedin cooperation with a remote server, there may be no need to transmit atime offset from the client device and the server may directly determinea time offset for the client device based upon, e.g., hashes receivedfrom a client device as discussed above. For example, synchronization asdescribed above may include sampling and processing the audio componentof a time-based media presentation at the client device to providerepresentative data such as hashes; transmitting the representative datato a remote server; and receiving the time offset from the remoteserver, all as described above. Further, receiving the time offset maybe omitted unless it has local relevance, such as for synchronizingmultiple, local client devices to one another and/or to a commoninstance of the presentation.

As shown in step 706, the process 700 may include receiving at theclient device interactive content synchronized to the presentation basedupon the time offset. The interactive content may be any form ofinteractive content suitable for the client device and/or relevant tothe time-based media presentation. This may for example include a quizrelated to the presentation, a poll temporally related to thepresentation, or search results for other client devices synchronized tothe time offset. As another example, the interactive content may includean instant messaging interface (using any suitable chat or messagingprotocol) that couples one or more other client devices to the clientdevice. This may include client devices at about the same time withinthe presentation in order to provide a common contextual backdrop amongthe chat participants. This type of loose synchronization of chatparticipants can also be used to avoid detrimental user experienceswhere, for example, one participant temporally ahead of the othersreveals and ending to a movie, television show, or sports event.

In one aspect, the synchronization platform may be used to imposesynchronization on a second client device. Thus, for example, a firstclient device may be synchronized to a presentation, and a user of thefirst client device may invite one or more other client devices toparticipate in a synchronized view of the presentation. The explicittime offset for the first client device may be used to initiate one ormore other presentations of the time-based media at remote locations sothat other users can synchronously view the presentation and engage ininteractive activity along with the user of the first client device.

As described above, the presentation may be any presentation thatchanges over time and, where an audio component is used forsynchronization, any presentation having a suitable audio component(although non-audio synchronization is also possible). Thus, thepresentation may include, by way of example and not limitation, a livetelevision broadcast, a time-shifted television broadcast, a radiobroadcast, and so forth. The presentation may be displayed from apre-recorded media such as a CD, a DVD, a Blu-ray disc, and/or an HDDVD. The presentation may also or instead be rendered from atransmission received through a satellite transmission, a cable network,a data network, or any other suitable communication medium.

As shown in step 708, the client device may transmit an interaction withthe interactive content. This may, for example, include submitting ananswer to a quiz question, transmitting a response to a poll question,sending an instant message or other synchronous chat or text to otherclient devices, or submitting a search query including, e.g., one ormore search terms. In another example, the interactive content mayinclude an interface to a social networking platform such as FaceBook orTwitter where a communication to the platform automatically incorporatesan identification of the user and a media title and time offset for thecommunication.

As shown in step 710, the client device may receive results ofinteraction by other client devices. Thus, for example, where theinteractive content is a quiz, the client device may receive and displayscores for other client devices including, e.g., top scores, averagescores, median scores, and so forth. Where the interactive content is apoll, the client device may receive and display a result for the pollsummarizing responses for other client devices.

Where the interactive content relates to searching, the client mayreceive and display actual search queries received from one or moreother client devices at about the client device's current time offsetwithin the presentation. Significantly, each one of the other clientdevices need not be at the same time offset at any particular moment intime. Rather, the other client devices may be at any time offsetcurrently, or may not currently be synchronized to the presentationwhatsoever. However, any searches from any one of the other clientdevices at a particular time offset (using any suitable units of timesuch as hours, minutes, seconds, or any other suitable time step) withinthe presentation may be captured and aggregated according to anindependently determined time offset for that one of the other clientdevices. The aggregated, synchronized search results may then beprocessed for transmission to and display by the client device when theclient device reaches that particular time offset. Search queries may beprocessed in a number of ways. For example, the search queriesincluding, e.g., specific search terms or other search parameters may beranked according to popularity. The search queries may also or insteadbe filtered by popularity, such as by displaying only the top five, topten, or top twenty search queries.

The results of interaction may be windowed in any suitable manner. Forexample, where a client device is being actively quizzed or polled, theresults for each question or other inquiry may be aggregated over somepredetermined period, and the result may displayed for some period oftime after the predetermined period. This may include displayinghistorical or aggregate results, such as a cumulative score for a quizor a history of poll questions and results that have accumulated overthe course of a time-based media presentation. For user-initiatedcontent such as search activity, this may include a moving window suchas plus/minus thirty seconds, one minute, five minutes, or the like.Similarly, for instant messaging applications or chat applications,participants may be limited to groups of devices having time offsetswithin a few seconds or minutes of one another. In addition, historicalchat records may be available to time-shifted viewers.

More generally, as shown in step 712, the interactive content may beperiodically updated as the time offset for the client device changesover an interval of the presentation. This may include dynamicallyupdating any of the interactive content described above to reflectchanges in related user behavior as the time offset for the clientdevice changes. Examples of dynamic updating include adding or removingchat participants who are closer or farther respectively in time offsetfrom the client device or updating a list of popular search queries (orselections of specific search results). This may also or instead includedeterministically updating interactive content such as by explicitlyprogressing through poll or quiz questions as the time offset advancesthrough a presentation for the client device. As another example, thismay include updating paid or sponsored interactive content such asadvertisements, market surveys, and so forth, any of which may berendered as interactive content by a client device that is synchronizedto a time-based media presentation.

In general, the process 700 may iterate by returning to any one of theproceeding steps. It will be understood that while a single process isdepicted, the process 700 may be executed in parallel on any number ofclient devices, and that a single client device may in certainembodiments be synchronized to multiple input streams such as concurrentradio and television in a single venue. All such variations are intendedto fall within the scope of this disclosure.

FIG. 8 is a flow chart of a process 800 for sharing search activity froma number of synchronized devices. In general, this may be viewed as amore specific embodiment of delivering synchronized interactive content,particularly where the user interface on the synchronized device(s)permits user interaction with the shared search activity.

As shown in step 802, the process 800 may begin with receiving searchbehavior data from a number of tracked devices. The tracked devices maybe synchronized to a first presentation of time-based media based uponan audio component of the first presentation, or using any othersynchronization technique described above. It will be understood thatthe tracked devices may also or instead be synchronized to numerousinstances of the time-based media, which may further include numerousasynchronous instances such as television broadcasts on different localnetworks, or in different time zones, or live and time-shifted views ofa television broadcast. The search behavior data may include the contentof search queries, and or the search behavior data may include searchresult selections. Thus, for example where a tracked device submits asearch query while synchronized to a presentation, the search query mayinclude a phrase or keywords used to search across content forresponsive items using any suitable search technology. These searchqueries may be catalogued, correlated to a time offset within thepresentation, and ranked or filtered by popularity or any other suitablemetric(s). In one embodiment, the identity of a user may be used toweight new searches, such as where a particular user has a history ofquick, initial selection of searches that later become popular.

In general, the tracked devices may be any of the devices describedabove, and synchronization may include synchronization using any of thetechniques described herein. The first presentation may include anypresentation through any media deliver platform described herein. In thecontext of FIG. 8, it should be further understood that the “firstpresentation” refers generally to any one or more presentations wheresearch behavior is tracked and analyzed. Thus, for example, the firstpresentation may include multiple presentations, including live and/ortime-shifted viewings as generally described above.

In one embodiment, search behavior data may include a search and a timeoffset from a number of client devices that are synchronized to an audioportion of a time-based media presentation. Each search may, forexample, include a content query from one of the client devices, andeach corresponding time offset may indicate a time within the time-basedmedia presentation at which the search was submitted by the clientdevice (or received by the server).

As shown in step 804, the process 800 may include identifying a mostpopular one of the search result selections at a time offset within thefirst presentation of the time-based media. In general, a server or thelike may track not only queries received from tracked devices, butclick-through or similar behavior that reflects specific search resultselections by users. These selections may also be filtered, ranked(e.g., by popularity), or otherwise processed to identify popular searchresult selections. In particular, the most popular search resultselected by users may be identified. More generally, step 804 mayinclude generating an aggregated search result for all of the clientdevices, where the aggregated search result is synchronized to aspecific time offset within the time-based media presentation.

As shown in step 806, a device may be synchronized with a secondpresentation of the time-based media. While synchronization to atime-shifted presentation is specifically contemplated, it will beunderstood that the methods and systems described herein may also beusefully employed exclusively in the context of a live broadcast usingany server with adequate processing power and network connectivity toidentify and distribute popular results within a small amount of time,such as within a few seconds, or even within a second. Thus the secondpresentation referred to herein may include an instance of thepresentation that is concurrent with, or substantially concurrent with,the first presentation, and the process 800 described herein mayusefully be performed exclusively in the context of a live broadcast. Itwill also be understood that a system is generally contemplated wherethe device and the tracked devices are synchronized to the time-basedmedia presentation using the same synchronization technology (e.g.,synchronization based on an audio component as discussed above), this isnot an absolute requirement, and multiple synchronization techniques maybe used across the various participating devices.

As shown in step 808, a representation of the most popular one of thesearch results may be transmitted to the device (synchronized in step706) at about the time offset within the second presentation that thesearch behavior data was received from the first presentation. Therepresentation of the most popular search result may take a variety offorms. This may include other data such as a listing of queries sortedby popularity, or a listing of search results sorted by popularity. Inone aspect, the most popular search result may be highlighted within thelisting of search results such as by displaying the most popular searchresult first, or by displaying the most popular search result in aseparate (and prominent) area within a user interface. In one aspect,the process 800 may only return a link to the most popular searchresult, or may serve to the synchronized device the search resultitself, e.g., in a browser or other content renderer. Thus thesynchronized device may simply render popular results as they areidentified, which permits a user to observe search activity by otherswithout any interaction by the user. The most popular result may updateat some interval such as once per minute or once per five minutes, orthe most popular result may be updated immediately whenever a new, mostpopular result is identified. The interface may also provide usabilityenhancements, such as by disabling an updated of the result whenever auser initiated interaction with a particular result that is beingdisplayed by the synchronized device.

In a more general embodiment, step 808 may include transmitting anyaggregated search result to a (synchronized) receiving client device ata time within the time-based media presentation substantiallycorresponding to the specific time offset for which the aggregatedsearch result was generated.

As shown in step 810, the result or results, once received by thesynchronized device, may be displayed on a screen or other displayhardware on the device.

The process 800 may be realized in a server or the like, such as any ofthe servers described above. It will be understood that the server maybe distributed across multiple physical devices using known techniques,and may aggregate data from any number of client devices consistent withthe communications and processing capabilities of the server. It willfurther be understood that a single logical or physical server maysupport the various steps described above for any number of differenttime-based media items such as different television programs, movies,and so forth. All such variations as would be apparent to one ofordinary skill in the art are intended to fall within the scope of thisdisclosure.

FIG. 9 is a flow chart of a process for delivering interactive contentfrom a server to one or more synchronized client devices, such as with aserver or similar hardware connected to a data network. In general, theprocess 900 of FIG. 9 may operate in a manner similar or identical tothe process 800 described above with reference to FIG. 8, or in a mannercomplementary to the process 700 for operating a client device describedabove with reference to FIG. 7. As will be readily apparent, the process900 of FIG. 9 relates more generally to delivering interactive contentsynchronized to multiple, asynchronous instances of a time-based mediapresentation.

As shown in step 902, the process 900 may begin with receiving a numberof time offsets from a number of client devices that identify a temporallocation in a presentation of time-based media for each one of theplurality of client devices. The client devices may be synchronizedusing, e.g., any of the synchronization techniques described above orany other suitable technique. The time offsets may be in any suitableunits including hours/minutes/seconds, or some other time steps orincrements useful for tracking progress through time-based media. Thepresentation may be any of the time-based media presentations describedabove.

As shown in step 904, the process 900 may include selecting time-basedinteractive content for each one of the client devices according to thetemporal location in the presentation for that client device. Thetime-based interactive content may, for example, include a quiz relatedto the presentation, or a poll or audience feedback query temporallyrelated to the presentation. As described above, the time-basedinteractive content may also or instead include a display of searchqueries from one or more of the client devices that have beensynchronized to the presentation, with each one of the search queriessynchronized to the presentation according to an independentlydetermined time offset for each respective one of the client devices.

The interactive content may also or instead include data derived fromprevious interactions by client devices. Thus, for example, the process900 may include scoring responses to a quiz and transmitting a quizresult (e.g., an individual or aggregate score) to one or more of theclient devices. Similarly, the process 900 may include processing pollresponses and transmitting a result for a poll to the client devices.The interactive content may also or instead include an instant messaginginterface using any suitable messaging technology that couples theplurality of client devices in a communicating relationship forsynchronous chat or the like. The interactive content may also orinstead include a display of search queries as discussed above. This mayfor example include search queries from one or more of the clientdevices that have been synchronized to the presentation, and each one ofthe search queries may be individually synchronized to the presentationaccording to an independently determined time offset for a correspondingone of the plurality of client devices. The search queries may be rankedand/or filtered according to popularity, and as described above,specific search results may be ranked and/or filtered according to theirselection by users.

As shown in step 906, the process 900 may include transmitting thetime-based interactive content to at least one of the plurality ofclient devices. This may include calculating and transmitting apresentation offset to one or more of the client devices. Thus, forexample, where numerous client devices are synchronized to approximatelybut not exactly concurrent instances of the presentation, theinteractive content may be broadcast with an indication of the correcttime offset to render the interactive content. Each client device maythen use its own time offset data to autonomously determine when torender the interactive content.

As shown in step 908, the process 800 may include updating theinteractive content for each one of the devices as the time offsetchanges over an interval of the presentation. Thus, for example, searchbehavior, poll results, quiz scores, and the like may be dynamicallyupdated with the passage of time, or participants to a chat session maybe added or removed as time offsets change for different devices. Theupdating may also or instead include periodic presentations of sponsoredcontent, informational messages from a content provider, or any otherpredetermined or dynamic content that might usefully be synchronized tothe presentation. In another aspect, content such as sponsored contentmay be selected according to aggregate search behavior such as a mostpopular search result selected by users.

FIG. 10 shows a user interface for rendering interactive content on aclient device as described herein. In general, interactive content suchas chat, polling, user feedback, and the like may be rendered in anysuitable format. Where interactive content such as search activityincludes multiple layers or dimensions of information, this informationmay be usefully displayed in a progressive format that provides acombination of general and specific information.

As shown in FIG. 10, a user interface 1000 may include a status window1002, a search query window 1004, a search results window 1006, and amost popular result window 1008. The windows 1002, 1004, 1006, 1008 maybe windows, frames, panes, or other elements of a web-based userinterface, or any other suitable interface element(s) and or controls,which may be rendered on a touch screen or other display of a clientdevice such as any of the client devices described above.

The status window 1002 may display various status items for a currentdevice synchronization. This may, for example, a title of media such asa movie or television broadcast to which the device is synchronized.This may also include a synchronization status that indicates whetherthere is currently good synchronization to the media. This may bedisplayed textually, or graphically with an icon or other symbolshowing, e.g., red, yellow, or green to indicate no synchronization,interrupted synchronization, or current synchronization respectively.The status window 1002 may also display a current time offset within themedia (when synchronized), media control icons such as paused, playing,stopped, and the like, as well as any other useful information. Thestatus window 1002 may also include fields for user input such as asearch query originated from the client device or a text message or thelike from the client device.

The search query window 1004 may display search queries from otherdevices that correspond to the current offset for the client device.Thus, a user may view contemporaneous search activity indexed to thetime offset regardless of any actual time-shifting in the mediapresentation to the client device. The search queries may be ranked orfiltered by popularity, which ranking/filtering may be updated at anysuitable intervals. With a large number of participants, it is expectedthat actual popularity will change slowly over time; however if actualuser behavior deviates significantly from this norm other processingsteps can be taken so that the list displayed on the client deviceremains sufficiently stable for easy viewing by a user. Actual searchqueries may be pre-processed for consistency, such as by changing theorder of keywords or disambiguating words with multiple possiblemeanings (e.g., according to other keywords in a query, or according toknown content of the media at the relevant time offset).

The search result window 1006 may display search results for a mostpopular one of the search queries. The search results may be rankedand/or filtered by relevance or popularity using any techniques known inthe art, and may for example be obtained through an applicationprogramming interface for a third party search engine or from any othersuitable source. The search results may be displayed as a textual listof hyperlinks, as small or large icons, or as separate interactive tilesthat may each include several actively hyperlinked areas therein. Thislatter approach may be particularly suitable where, for example, aresult is a particular good such as a DVD or other media. In such acase, the interactive tile may include, e.g., separate areas within thetile linked to biographical information about the media, linked to websites where the media can be purchased, linked to clips or promotionalvideos for the media, and so forth.

The most popular result window 1008 may display a single, most popularsearch result selected from the search results of the search resultwindow 1006. Particularly where searching is performed through thesynchronization platform described herein (which searching may receiveback end support from a third party search platform), selection ofindividual search results from synchronized client devices may betracked, and the most popular search result that is actually selectedmay be presented directly to any/all synchronized client devices. Thisapproach advantageously permits a user to view, with no keystrokeswhatsoever, the item that is being selected by most client devicessynchronized to a time-based media presentation. This service canconverge fairly quickly, and may be provided in near real time toviewers of a live broadcast, as well as to any time-shifted viewersindependent of when and where the presentation is viewed. In oneembodiment, the client device may display only the most popular resultwindow 1008, which may be rendered as a link to the most popular item,or as the most popular item itself.

It will be appreciated that many of the above systems, devices, methods,processes, and the like may be realized in hardware, software, or anycombination of these suitable for the data processing, datacommunications, and other functions described herein. This includesrealization in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors or otherprogrammable devices or processing circuitry, along with internal and/orexternal memory. This may also, or instead, include one or moreapplication specific integrated circuits, programmable gate arrays,programmable array logic components, or any other device or devices thatmay be configured to process electronic signals. It will further beappreciated that a realization of the processes or devices describedabove may include computer-executable code created using a structuredprogramming language such as C, an object oriented programming languagesuch as C++, or any other high-level or low-level programming language(including assembly languages, hardware description languages, anddatabase programming languages and technologies) that may be stored,compiled or interpreted to run on one of the above devices, as well asheterogeneous combinations of processors, processor architectures, orcombinations of different hardware and software. At the same time,processing may be distributed across devices such as the various systemsdescribed above, or all of the functionality may be integrated into adedicated, standalone device. All such permutations and combinations areintended to fall within the scope of the present disclosure.

In other embodiments, disclosed herein are computer program productscomprising computer-executable code or computer-usable code that, whenexecuting on one or more computing devices (such as the devices/systemsdescribed above), performs any and/or all of the steps described above.The code may be stored in a computer memory or other non-transitorycomputer readable medium, which may be a memory from which the programexecutes (such as internal or external random access memory associatedwith a processor), a storage device such as a disk drive, flash memoryor any other optical, electromagnetic, magnetic, infrared or otherdevice or combination of devices. In another aspect, any of theprocesses described above may be embodied in any suitable transmissionor propagation medium carrying the computer-executable code describedabove and/or any inputs or outputs from same.

It will be appreciated that the methods and systems described above areset forth by way of example and not of limitation. Numerous variations,additions, omissions, and other modifications will be apparent to one ofordinary skill in the art. While particular embodiments of the presentinvention have been shown and described, it will be apparent to thoseskilled in the art that various changes and modifications in form anddetails may be made therein without departing from the spirit and scopeof the invention as defined by the following claims. The claims thatfollow are intended to include all such variations and modificationsthat might fall within their scope, and should be interpreted in thebroadest sense allowable by law.

What is claimed is:
 1. A method comprising: receiving a plurality oftime offsets from a plurality of client devices that identify a temporallocation in a presentation of time-based media for each one of theplurality of client devices; transmitting time-based interactive contentselected according to the temporal location to at least one of theplurality of client devices for display on the at least one of theplurality of client devices, wherein the interactive content includes aquiz synchronized to the presentation; scoring one or more responses tothe quiz from the plurality of client devices; and transmitting a quizresult based upon the scoring to one of the plurality of clients fordisplay on the one of the plurality of client devices synchronized tothe presentation according to an independently determined time offsetfor the one of the plurality of client devices.
 2. The method of claim 1wherein transmitting time-based interactive content includestransmitting a presentation offset in order to synchronize display ofthe time-based interactive content on each one of the plurality ofclient devices.
 3. The method of claim 1 wherein the interactive contentincludes a poll temporally related to the presentation.
 4. The method ofclaim 3 further comprising transmitting a result for the poll to one ormore of the plurality of client devices.
 5. The method of claim 1further comprising updating the interactive content for each one of theplurality of devices as the time offset for that one of the plurality ofdevices changes over an interval of the presentation.
 6. The method ofclaim 1 wherein the presentation includes a live television broadcast.7. The method of claim 1 wherein the presentation includes atime-shifted television broadcast.
 8. The method of claim 1 wherein thepresentation includes a display to the client device from a pre-recordedmedia including at least one of a CD, a DVD, a Blu-ray disc, and an HDDVD.
 9. The method of claim 1 wherein synchronizing the client deviceincludes: receiving data representative of an audio component of thepresentation from each one of the plurality of client devices;determining for each one of the plurality of client devices a timeoffset within the presentation; and transmitting the time offset foreach one of the plurality of client devices to that one of the pluralityof client devices.
 10. The method of claim 1 wherein the interactivecontent includes an instant messaging interface that couples theplurality of client devices in a communicating relationship forsynchronous chat.
 11. A computer program product for providinginteractive content, the computer program product comprising computerexecutable code embodied in a non-transitory computer readable mediumthat, when executing on one or more computing devices, performs thesteps of: receiving a plurality of time offsets from a plurality ofclient devices that identify a temporal location in a presentation oftime-based media for each one of the plurality of client devices;transmitting time-based interactive content according to the temporallocation to at least one of the plurality of client devices for displayon the at least one of the plurality of devices, wherein the interactivecontent includes a quiz synchronized to the presentation; scoring one ormore responses to the quiz from the plurality of client devices; andtransmitting a quiz result based upon the scoring to one of theplurality of clients for display on the one of the plurality of clientdevices synchronized to the presentation according to an independentlydetermined time offset for the one of the plurality of client devices.12. The computer program product of claim 11 wherein transmittingtime-based interactive content includes transmitting a presentationoffset in order to synchronize display of the time-based interactivecontent on each one of the plurality of client devices.
 13. A servercomprising: a data network interface configured to provide acommunicating relationship with a data network; a database; and aprocessor configured to perform the steps of: receiving a plurality oftime offsets from a plurality of client devices that identify a temporallocation in a presentation of time-based media for each one of theplurality of client devices; transmitting time-based interactive contentfrom the database according to the temporal location to at least one ofthe plurality of client devices for display on the at least one of theplurality of devices, wherein the interactive content includes a quizsynchronized to the presentation; scoring one or more responses to thequiz from the plurality of client devices; and transmitting a quizresult based upon the scoring to one of the plurality of clients fordisplay on the one of the plurality of client devices synchronized tothe presentation according to an independently determined time offsetfor the one of the plurality of client devices.
 14. The computer programproduct of claim 11 wherein the interactive content includes a polltemporally related to the presentation.
 15. The computer program productof claim 11 further comprising code that performs the step oftransmitting a result for the poll to one or more of the plurality ofclient devices.
 16. The computer program product of claim 11 furthercomprising code that performs the step of updating the interactivecontent for each one of the plurality of devices as the time offset forthat one of the plurality of devices changes over an interval of thepresentation.
 17. The computer program product of claim 11 wherein thepresentation includes a live television broadcast.
 18. The computerprogram product of claim 11 wherein the presentation includes atime-shifted television broadcast.
 19. The computer program product ofclaim 11 wherein the presentation includes a display to the clientdevice from a pre-recorded media including at least one of a CD, a DVD,a Blu-ray disc, and an HD DVD.